package com.tree.jvm.gc.mem;

/**
 * package com.tree.jvm.gc.mem
 * description:
 * 内存回收1
 * -verbose:gc  -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xms20M -Xmx20M -Xmn10M -XX:SurvivorRatio=8
 *
 *
 * @author tree
 * @date 2019-11-11 12:37
 */
public class MemAllocationTest1 {
    public static void main(String[] args) {
        testAllocation();
    }

    private static final int _1MB = 1024*1024;

    public static void testAllocation(){
        byte[] allcation1,allocation2,allocation3,allocation4;

        allcation1 = new byte[2*_1MB];
        allocation2 = new byte[2*_1MB];
        allocation3 = new byte[2*_1MB];
        //出现一次minorGC， 由于eden只有8M，现已有6M， 增加4M， 内存不足， 导致minor GC；
        // 又由于3个2M的对象无法全部放入survivor空间（每个survivor只有1M），所以通过分配担保机制提前将4M转移到老年代
        allocation4 = new byte[4*_1MB];
    }
}
